package com.yonyou.cyxdms.sysAuth.service.dto.notification;

import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.yonyou.cyxdms.framework.bean.dto.base.DMSBaseDTO;
import com.yonyou.cyx.framework.bean.entity.base.BasePO;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeSerializer;

/**
 * <p>
 * 通知通告反馈记录表
 * </p>
 *
 * @author chengliang
 * @since 2019-09-25
 */

public class NotificationFeedbackDTO extends DMSBaseDTO implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 通知通告反馈ID
	 */
	private Long notificationFeedbackId;


	/**
	 * 通知通告ID
	 */
	private Long notificationId;


	/**
	 * 反馈状态（已读，未读）
	 */
	private Integer status;


	/**
	 * 是否是经销商
	 */
	private Integer isDealer;


	/**
	 * 反馈内容
	 */
	private String feedbackContent;


	/**
	 * 反馈时间
	 */
	@JsonDeserialize(using = JsonLocalDateTimeDeserializer.class)
	@JsonSerialize(using = JsonLocalDateTimeSerializer.class)
	private LocalDateTime feedbackTime;


	/**
	 * 反馈人名称
	 */
	private String feedbackUserName;


	/**
	 * 反馈人
	 */
	private Long feedbackUser;


	/**
	 * 经销商名称
	 */
	private String dealerName;


	/**
	 * 经销商代码
	 */
	private String ownerCode;


	/**
	 * 是否删除
	 */
	private Boolean isDeleted;



	public NotificationFeedbackDTO() {
		super();
	}


	public Long getNotificationFeedbackId() {
		return notificationFeedbackId;
	}

	public void setNotificationFeedbackId(Long notificationFeedbackId) {
		this.notificationFeedbackId = notificationFeedbackId;
	}

	public Long getNotificationId() {
		return notificationId;
	}

	public void setNotificationId(Long notificationId) {
		this.notificationId = notificationId;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public Integer getIsDealer() {
		return isDealer;
	}

	public void setIsDealer(Integer isDealer) {
		this.isDealer = isDealer;
	}

	public String getFeedbackContent() {
		return feedbackContent;
	}

	public void setFeedbackContent(String feedbackContent) {
		this.feedbackContent = feedbackContent;
	}

	public LocalDateTime getFeedbackTime() {
		return feedbackTime;
	}

	public void setFeedbackTime(LocalDateTime feedbackTime) {
		this.feedbackTime = feedbackTime;
	}

	public String getFeedbackUserName() {
		return feedbackUserName;
	}

	public void setFeedbackUserName(String feedbackUserName) {
		this.feedbackUserName = feedbackUserName;
	}

	public Long getFeedbackUser() {
		return feedbackUser;
	}

	public void setFeedbackUser(Long feedbackUser) {
		this.feedbackUser = feedbackUser;
	}

	public String getDealerName() {
		return dealerName;
	}

	public void setDealerName(String dealerName) {
		this.dealerName = dealerName;
	}

	public String getOwnerCode() {
		return ownerCode;
	}

	public void setOwnerCode(String ownerCode) {
		this.ownerCode = ownerCode;
	}

	public Boolean getDeleted() {
		return isDeleted;
	}

	public void setDeleted(Boolean isDeleted) {
		this.isDeleted = isDeleted;
	}

	@Override
	public String toString() {
		return "NotificationFeedbackDTO{" +
		"notificationFeedbackId=" + notificationFeedbackId +
		", notificationId=" + notificationId +
		", status=" + status +
		", isDealer=" + isDealer +
		", feedbackContent=" + feedbackContent +
		", feedbackTime=" + feedbackTime +
		", feedbackUserName=" + feedbackUserName +
		", feedbackUser=" + feedbackUser +
		", dealerName=" + dealerName +
		", ownerCode=" + ownerCode +
		", isDeleted=" + isDeleted +
		"}";
	}
	/**
	 * 将DTO 转换为PO
	 * //对某个对象属性进行赋值
	 * //BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
	 * @param poClass dto 需要转换的dto
	 * @author chengliang
	 * @since 2019-09-25
	 */
	@Override
	public <T extends BasePO> T transDtoToPo(Class<T> poClass) {
		return super.transDtoToPo(poClass);
	}

	/**
	 * 将DTO 转换为PO
	 * BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
	 * @param po 需要转换的对象
	 * @author chengliang
	 * @since 2019-09-25
	 */
	public <T extends BasePO> void transDtoToPo(T po) {
		BeanMapperUtil.copyProperties(this, po, "notificationFeedbackId");
	}

}
